package a.e;

import a.c.bb;
import a.c.m;
import a.c.q;
import a.c.w;
import a.j.a.j;
import a.j.g;
import a.j.*;

import java.io.*;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;

public class r
  extends e
{
  private j c;
  private boolean d;
  private boolean e;
  private boolean g;
  private int[] h;
  protected static Map i = new HashMap();
  protected static Map j = new HashMap();
  private Map k = new LinkedHashMap();
  static final int m = 305419896;
  boolean n = false;
  private boolean o;
  private byte p;
  static Class q;
  static Class r;
  static Class s;
  static Class t;
  static Class u;
  static Class v;
  static Class w;
  static Class x;
  static Class y;
  static Class z;
  static Class A;
  static Class B;
  static Class C;
  static Class D;
  static Class E;
  static Class F;
  static Class G;
  static Class H;
  public static int I;
  
  public static void a(String paramString1, String paramString2)
  {
    i.put(paramString1, paramString2);
    j.put(paramString2, paramString1);
  }
  
  public static String c(String paramString)
  {
    String str = (String)j.get(paramString);
    if (e.b == 0) {}
    return str != null ? str : paramString;
  }
  
  public static String d(String paramString)
  {
    String str = (String)i.get(paramString);
    if (e.b == 0) {}
    return str != null ? str : paramString;
  }
  
  public String a()
  {
    return "YGF Format";
  }
  
  public String b()
  {
    return "ygf";
  }
  
  public void a(g paramg, OutputStream paramOutputStream)
    throws IOException
  {
    int i2 = e.b;
    n.a(this, "writeOS");
    this.c = j.a(paramg);
    ObjectOutputStream localObjectOutputStream = a(paramOutputStream);
    int i1 = 3;
    if (i2 == 0)
    {
      if (this.k.size() > 0) {
        i1 = 4;
      }
      localObjectOutputStream.writeByte(i1);
      localObjectOutputStream.flush();
    }
    GZIPOutputStream localGZIPOutputStream = new GZIPOutputStream(paramOutputStream);
    localObjectOutputStream = a(localGZIPOutputStream);
    b(paramg, localObjectOutputStream);
    if (i2 == 0)
    {
      if (i1 > 3) {
        a(paramg, localObjectOutputStream);
      }
      localObjectOutputStream.flush();
      localGZIPOutputStream.flush();
      localGZIPOutputStream.finish();
    }
  }
  
  void a(g paramg, ObjectOutputStream paramObjectOutputStream)
    throws IOException
  {
    int i1 = e.a;
    paramObjectOutputStream.writeInt(305419896);
    paramObjectOutputStream.writeInt(this.k.size());
    Iterator localIterator = this.k.entrySet().iterator();
    do
    {
      if (!localIterator.hasNext()) {
        break;
      }
      Map.Entry localEntry = (Map.Entry)localIterator.next();
      paramObjectOutputStream.writeObject(localEntry.getKey());
      a(paramg, (a_)localEntry.getValue(), paramObjectOutputStream);
    } while (i1 == 0);
  }
  
  void a(g paramg, a_ parama_, ObjectOutputStream paramObjectOutputStream)
    throws IOException
  {
    int i2 = e.b;
    int i1 = e.a;
    ByteArrayOutputStream localByteArrayOutputStream = new ByteArrayOutputStream();
    ObjectOutputStream localObjectOutputStream = new ObjectOutputStream(localByteArrayOutputStream);
    parama_.a(paramg, paramg, localObjectOutputStream);
    j localj = paramg.K();
    Object localObject1 = paramg.v();
    Object localObject2;
    do
    {
      if (!((w)localObject1).e()) {
        break;
      }
      localObject2 = ((w)localObject1).d();
      parama_.a(paramg, localObject2, localObjectOutputStream);
      if (i2 == 0)
      {
        if (localj != null)
        {
          if (i2 != 0) {
            continue;
          }
          if (localj.l((a.c.e)localObject2)) {
            a((g)localj.o((a.c.e)localObject2), parama_, localObjectOutputStream);
          }
        }
        ((w)localObject1).f();
      }
    } while (i1 == 0);
    localObject1 = paramg.w();
    do
    {
      if (!((m)localObject1).e()) {
        break;
      }
      localObject2 = ((m)localObject1).a();
      parama_.a(paramg, localObject2, localObjectOutputStream);
      ((m)localObject1).f();
      if ((i2 == 0) && (i1 != 0)) {
        return;
      }
    } while (i1 == 0);
    localObjectOutputStream.flush();
    localObjectOutputStream.close();
    localByteArrayOutputStream.flush();
    paramObjectOutputStream.writeInt(localByteArrayOutputStream.size());
    if (i2 == 0) {
      localByteArrayOutputStream.writeTo(paramObjectOutputStream);
    }
  }
  
  protected void b(g paramg, ObjectOutputStream paramObjectOutputStream)
    throws IOException
  {
    int i2 = e.b;
    int i1 = e.a;
    n.a(this, "writeOOS");
    paramObjectOutputStream.writeByte(2);
    if (i2 == 0) {
      if (this.c != null)
      {
        if (i2 != 0) {
          break label60;
        }
        this.g = this.c.i();
        if (i1 == 0) {
          break label59;
        }
      }
    }
    this.g = false;
    label59:
    label60:
    boolean bool = this.c != null;
    paramObjectOutputStream.writeBoolean(this.g);
    paramObjectOutputStream.writeBoolean(bool);
    paramObjectOutputStream.writeInt(paramg.k());
    Object localObject = paramg.v();
    if (((w)localObject).e())
    {
      a(paramg, ((w)localObject).d(), paramObjectOutputStream);
      ((w)localObject).f();
    }
    for (;;)
    {
      if ((i2 != 0) || (i1 == 0))
      {
        if (i1 == 0) {
          break;
        }
        if (i2 == 0) {
          paramObjectOutputStream.writeInt(paramg.m());
        }
      }
    }
    localObject = paramg.w();
    do
    {
      if (!((m)localObject).e()) {
        break;
      }
      a.c.d locald = ((m)localObject).a();
      paramObjectOutputStream.writeInt(locald.e().f());
      paramObjectOutputStream.writeInt(locald.f().f());
      a(paramg, locald, paramObjectOutputStream);
      ((m)localObject).f();
    } while (i1 == 0);
  }
  
  protected void a(g paramg, a.c.d paramd, ObjectOutputStream paramObjectOutputStream)
    throws IOException
  {
    paramObjectOutputStream.writeByte(1);
    b(paramg, paramd, paramObjectOutputStream);
    c(paramg, paramd, paramObjectOutputStream);
  }
  
  protected void b(g paramg, a.c.d paramd, ObjectOutputStream paramObjectOutputStream)
    throws IOException
  {
    tb localtb = paramg.t(paramd);
    paramObjectOutputStream.writeObject(c(localtb.getClass().getName()));
    localtb.a(paramObjectOutputStream);
  }
  
  protected void c(g paramg, a.c.d paramd, ObjectOutputStream paramObjectOutputStream)
    throws IOException
  {
    int i4 = e.b;
    int i3 = e.a;
    if (i4 == 0) {
      if (this.c == null) {
        return;
      }
    }
    if (i4 == 0)
    {
      if (this.c.e(paramd)) {
        paramObjectOutputStream.writeBoolean(true);
      }
    }
    else
    {
      a.c.e locale = this.c.b(paramd);
      if (i4 == 0)
      {
        if (locale != paramd.e()) {
          paramObjectOutputStream.writeBoolean(true);
        }
      }
      else
      {
        localObject = this.c.a(locale);
        int i1 = 1;
        do
        {
          while (i3 == 0)
          {
            if ((i1 >= localObject.length) || (localObject[i1] == paramd.e())) {
              break;
            }
            i1++;
          }
          paramObjectOutputStream.writeInt(localObject.length - i1);
        } while (i4 != 0);
        i1++;
        if (i1 < localObject.length) {}
        while (i4 != 0)
        {
          paramObjectOutputStream.writeInt(((a.c.e)localObject[i1]).f());
          i1++;
          if (i4 != 0) {
            break label190;
          }
          if (i3 != 0) {
            break label188;
          }
          if (i3 == 0) {
            break;
          }
        }
        paramObjectOutputStream.writeInt(locale.f());
        label188:
        label190:
        if (i3 == 0) {
          break label198;
        }
      }
      paramObjectOutputStream.writeBoolean(false);
      label198:
      Object localObject = this.c.c(paramd);
      if (i4 == 0)
      {
        if (localObject != paramd.f())
        {
          paramObjectOutputStream.writeBoolean(true);
          Object[] arrayOfObject = this.c.a(localObject);
          int i2 = 1;
          do
          {
            while (i3 == 0)
            {
              if ((i2 >= arrayOfObject.length) || (arrayOfObject[i2] == paramd.f())) {
                break;
              }
              i2++;
            }
            paramObjectOutputStream.writeInt(arrayOfObject.length - i2);
          } while (i4 != 0);
          i2++;
          if (i2 < arrayOfObject.length) {}
          while (i4 != 0)
          {
            paramObjectOutputStream.writeInt(((a.c.e)arrayOfObject[i2]).f());
            i2++;
            if (i4 != 0) {
              break label344;
            }
            if (i3 != 0) {
              break label342;
            }
            if (i3 == 0) {
              break;
            }
          }
          paramObjectOutputStream.writeInt(((a.c.e)localObject).f());
          label342:
          label344:
          if (i4 != 0) {
            break label364;
          }
          if (i3 == 0) {
            return;
          }
        }
        if (i4 != 0) {
          break label369;
        }
        paramObjectOutputStream.writeBoolean(false);
      }
      if (i3 == 0) {
        label364:
        return;
      }
    }
    label369:
    paramObjectOutputStream.writeBoolean(false);
  }
  
  protected void a(g paramg, a.c.e parame, ObjectOutputStream paramObjectOutputStream)
    throws IOException
  {
    paramObjectOutputStream.writeByte(2);
    b(paramg, parame, paramObjectOutputStream);
    c(paramg, parame, paramObjectOutputStream);
    d(paramg, parame, paramObjectOutputStream);
  }
  
  protected void b(g paramg, a.c.e parame, ObjectOutputStream paramObjectOutputStream)
    throws IOException
  {
    ld localld = paramg.w(parame);
    paramObjectOutputStream.writeObject(c(localld.getClass().getName()));
    localld.a(paramObjectOutputStream);
    if (((localld instanceof pd)) && ((e.b != 0) || (this.c == null))) {
      b(((pd)localld).i(), paramObjectOutputStream);
    }
  }
  
  protected void c(g paramg, a.c.e parame, ObjectOutputStream paramObjectOutputStream)
    throws IOException
  {
    int i1 = e.b;
    if (i1 == 0) {
      if (this.c == null) {
        return;
      }
    }
    if (i1 == 0)
    {
      if (this.c.l(parame))
      {
        if (i1 != 0) {
          break label68;
        }
        paramObjectOutputStream.writeBoolean(true);
        b((g)this.c.o(parame), paramObjectOutputStream);
      }
    }
    else if (e.a == 0) {
      return;
    }
    label68:
    paramObjectOutputStream.writeBoolean(false);
  }
  
  protected void d(g paramg, a.c.e parame, ObjectOutputStream paramObjectOutputStream)
    throws IOException
  {
    int i1 = e.b;
    if ((i1 != 0) || (this.c != null))
    {
      if (i1 != 0) {
        break label43;
      }
      if (this.g) {}
    }
    else
    {
      return;
    }
    paramObjectOutputStream.writeBoolean(this.c.m(parame));
    label43:
    a.c.e locale = this.c.p(parame);
    if (locale != null) {
      if (i1 == 0)
      {
        if (this.c.m(locale))
        {
          if (i1 != 0) {
            break label96;
          }
          paramObjectOutputStream.writeInt(locale.f());
        }
      }
      else if (e.a == 0) {
        return;
      }
    }
    label96:
    paramObjectOutputStream.writeInt(-1);
  }
  
  public void a(g paramg, InputStream paramInputStream)
    throws IOException
  {
    paramg.z();
    try
    {
      c(paramg, paramInputStream);
    }
    finally
    {
      paramg.A();
    }
  }
  
  private void c(g paramg, InputStream paramInputStream)
    throws IOException
  {
    int i1 = e.b;
    ObjectInputStream localObjectInputStream = a(paramInputStream);
    this.p = localObjectInputStream.readByte();
    if (i1 == 0)
    {
      if (this.p > 2) {
        localObjectInputStream = a(new GZIPInputStream(paramInputStream));
      }
      this.c = j.a(paramg);
    }
    try
    {
      this.o = true;
      b(paramg, localObjectInputStream);
    }
    finally
    {
      this.o = false;
    }
    if ((i1 != 0) || (this.p > 3)) {
      a(paramg, localObjectInputStream);
    }
  }
  
  void a(g paramg, ObjectInputStream paramObjectInputStream)
    throws IOException
  {
    int i4 = e.b;
    int i3 = e.a;
    Object localObject1 = null;
    try
    {
      int i1 = 0;
      try
      {
        if (i4 == 0) {
          if (paramObjectInputStream.readInt() != 305419896) {
            return;
          }
        }
        i1 = paramObjectInputStream.readInt();
      }
      catch (EOFException localEOFException1)
      {
        return;
      }
      while (i1-- > 0)
      {
        try
        {
          localObject1 = paramObjectInputStream.readObject();
          if ((i4 != 0) || (i3 != 0)) {
            break;
          }
        }
        catch (EOFException localEOFException2)
        {
          return;
        }
        localObject2 = (a_)this.k.get(localObject1);
        if (i4 == 0)
        {
          if (localObject2 != null) {
            a(paramg, (a_)localObject2, paramObjectInputStream);
          }
        }
        else {
          if ((i4 == 0) && (i3 == 0)) {
            continue;
          }
        }
        try
        {
          int i2 = paramObjectInputStream.readInt();
          paramObjectInputStream.skipBytes(i2);
        }
        catch (IOException localIOException)
        {
          throw new IOException("Can't skip data registered with key " + localObject1);
        }
      }
    }
    catch (ClassNotFoundException localClassNotFoundException)
    {
      Object localObject2 = new IOException("Unable to read data." + localClassNotFoundException.getMessage());
      ((IOException)localObject2).initCause(localClassNotFoundException);
      throw ((Throwable)localObject2);
    }
  }
  
  void a(g paramg, a_ parama_, ObjectInputStream paramObjectInputStream)
    throws IOException
  {
    int i5 = e.b;
    int i4 = e.a;
    int i1 = paramObjectInputStream.readInt();
    byte[] arrayOfByte = new byte[i1];
    int i2 = 0;
    do
    {
      if (i2 >= arrayOfByte.length - 1) {
        break;
      }
      if (i4 != 0) {
        break label104;
      }
      int i3 = paramObjectInputStream.read(arrayOfByte, i2, arrayOfByte.length - i2);
      if (i5 == 0)
      {
        if (i3 < 0) {
          throw new EOFException("Unexpected end of file");
        }
        i2 += i3;
      }
    } while (i4 == 0);
    label104:
    ObjectInputStream localObjectInputStream = new ObjectInputStream(new ByteArrayInputStream(arrayOfByte));
    parama_.a(paramg, paramg, localObjectInputStream);
    j localj = paramg.K();
    Object localObject1 = paramg.v();
    Object localObject2;
    do
    {
      if (!((w)localObject1).e()) {
        break;
      }
      localObject2 = ((w)localObject1).d();
      parama_.a(paramg, localObject2, localObjectInputStream);
      if (i5 == 0)
      {
        if (localj != null)
        {
          if (i5 != 0) {
            continue;
          }
          if (localj.l((a.c.e)localObject2)) {
            a((g)localj.o((a.c.e)localObject2), parama_, localObjectInputStream);
          }
        }
        ((w)localObject1).f();
      }
    } while (i4 == 0);
    localObject1 = paramg.w();
    do
    {
      if (!((m)localObject1).e()) {
        break;
      }
      localObject2 = ((m)localObject1).a();
      parama_.a(paramg, localObject2, localObjectInputStream);
      ((m)localObject1).f();
      if ((i5 == 0) && (i4 != 0)) {
        return;
      }
    } while (i4 == 0);
    if (i5 == 0) {
      localObjectInputStream.close();
    }
  }
  
  protected void b(g paramg, ObjectInputStream paramObjectInputStream)
    throws IOException
  {
    int i6 = e.b;
    int i5 = e.a;
    n.a(this, "readOIS");
    n.a(this, "read Version");
    od localod = new od();
    xb localxb = new xb();
    if (i6 == 0) {
      if (this.o)
      {
        if (i6 == 0) {
          if (this.p > 2)
          {
            b = paramObjectInputStream.readByte();
            if (i6 != 0) {
              break label93;
            }
            if (i5 == 0) {
              break label86;
            }
          }
        }
        b = this.p;
        label86:
        this.o = false;
        label93:
        if (i6 != 0) {
          break label119;
        }
        if (i5 == 0) {
          break label107;
        }
      }
    }
    byte b = paramObjectInputStream.readByte();
    label107:
    this.e = (this.d = 0);
    label119:
    if (i6 == 0) {
      if (b == 0)
      {
        this.d = false;
        if (i6 != 0) {
          break label228;
        }
        if (i5 == 0) {
          break label218;
        }
      }
    }
    if (i6 == 0)
    {
      if (b == 1)
      {
        this.d = paramObjectInputStream.readBoolean();
        if (i6 != 0) {
          break label228;
        }
        if (i5 == 0) {
          break label218;
        }
      }
      if (i6 != 0) {}
    }
    else
    {
      if (b != 2) {
        break label208;
      }
      this.e = paramObjectInputStream.readBoolean();
      this.d = paramObjectInputStream.readBoolean();
    }
    if (i6 == 0)
    {
      if (i5 != 0) {
        label208:
        throw new c(b);
      }
      label218:
      n.a(this, "read nodes");
    }
    label228:
    int i1 = paramObjectInputStream.readInt();
    a.c.e[] arrayOfe = new a.c.e[i1];
    int[] arrayOfInt1 = null;
    int[] arrayOfInt2 = null;
    if (((i6 == 0) && (this.c != null)) || ((i6 != 0) || (this.e)))
    {
      arrayOfInt1 = new int[i1];
      arrayOfInt2 = this.h;
      this.h = arrayOfInt1;
    }
    int i2 = 0;
    do
    {
      do
      {
        if (i2 >= i1) {
          break;
        }
        arrayOfe[i2] = paramg.a(localod);
        a(paramg, arrayOfe[i2], paramObjectInputStream);
        i2++;
        if (i6 != 0) {
          break label352;
        }
        if (i5 != 0) {
          break label351;
        }
      } while (i5 == 0);
      n.a(this, "read edges");
    } while (i6 != 0);
    i2 = paramObjectInputStream.readInt();
    label351:
    label352:
    int i3 = 0;
    do
    {
      do
      {
        if (i3 >= i2) {
          break;
        }
        a.c.e locale1 = arrayOfe[paramObjectInputStream.readInt()];
        a.c.e locale2 = arrayOfe[paramObjectInputStream.readInt()];
        a.c.d locald = paramg.a(locale1, locale2, localxb);
        a(paramg, locald, paramObjectInputStream);
        i3++;
        if (i6 != 0) {
          break label544;
        }
        if (i5 != 0) {
          break label541;
        }
      } while (i5 == 0);
      if (i6 != 0) {
        break;
      }
    } while (i6 != 0);
    if (this.e)
    {
      if (i6 != 0) {
        break label536;
      }
      if (this.c != null)
      {
        i3 = 0;
        if (i3 >= arrayOfe.length) {}
      }
    }
    do
    {
      int i4 = this.h[arrayOfe[i3].f()];
      if (i6 != 0) {
        break label544;
      }
      if (i5 != 0) {
        break label541;
      }
      if (i6 == 0)
      {
        if (i4 >= 0) {
          this.c.c(new bb(arrayOfe[i3]), arrayOfe[i4]);
        }
        i3++;
      }
      if (i5 == 0) {
        break;
      }
      this.h = arrayOfInt2;
    } while (i6 != 0);
    label536:
    n.a(this, "readOIS done");
    label541:
    label544:
    if (i6 == 0)
    {
      if (q.n) {
        i5++;
      }
    }
    else {
      e.a = i5;
    }
    if (q.o)
    {
      i6++;
      e.b = i6;
    }
  }
  
  protected void a(g paramg, a.c.e parame, ObjectInputStream paramObjectInputStream)
    throws IOException
  {
    int i2 = e.b;
    int i1 = e.a;
    byte b = paramObjectInputStream.readByte();
    if (i2 == 0) {
      if (b == 0)
      {
        b(paramg, parame, paramObjectInputStream);
        if ((i2 == 0) && (i1 == 0)) {
          return;
        }
      }
    }
    if (i2 == 0)
    {
      if (b == 1)
      {
        b(paramg, parame, paramObjectInputStream);
        c(paramg, parame, paramObjectInputStream);
        if ((i2 == 0) && (i1 == 0)) {
          return;
        }
      }
      if (i2 != 0) {}
    }
    else
    {
      if (b != 2) {
        break label115;
      }
      b(paramg, parame, paramObjectInputStream);
      c(paramg, parame, paramObjectInputStream);
      d(paramg, parame, paramObjectInputStream);
    }
    if (i1 != 0) {
      label115:
      throw new c(b);
    }
  }
  
  protected void b(g paramg, a.c.e parame, ObjectInputStream paramObjectInputStream)
    throws IOException
  {
    int i1 = e.b;
    try
    {
      String str = (String)paramObjectInputStream.readObject();
      str = d(str);
      localObject = Class.forName(str);
      ld localld = (ld)((Class)localObject).newInstance();
      paramg.a(parame, localld);
      localld.a(paramObjectInputStream);
      if ((i1 != 0) || (((localld instanceof pd)) && ((i1 != 0) || (!this.d))))
      {
        g localg = a(parame);
        b(localg, paramObjectInputStream);
      }
    }
    catch (RuntimeException localRuntimeException)
    {
      throw localRuntimeException;
    }
    catch (Exception localException)
    {
      Object localObject = new IOException(localException.toString());
      ((IOException)localObject).initCause(localException);
      throw ((Throwable)localObject);
    }
  }
  
  protected g a(a.c.e parame)
  {
    return new g();
  }
  
  protected void c(g paramg, a.c.e parame, ObjectInputStream paramObjectInputStream)
    throws IOException
  {
    int i1 = e.b;
    if (i1 == 0) {
      if (!this.d) {
        return;
      }
    }
    if (paramObjectInputStream.readBoolean())
    {
      if (i1 == 0) {
        if (this.c != null)
        {
          this.c.f(parame);
          localg = (g)this.c.o(parame);
          if (i1 != 0) {
            break label89;
          }
          if (e.a == 0) {
            break label76;
          }
        }
      }
      g localg = a(parame);
      label76:
      if ((i1 != 0) || ((paramg.w(parame) instanceof pd)))
      {
        label89:
        pd localpd = (pd)paramg.w(parame);
        localpd.a(localg);
      }
      b(localg, paramObjectInputStream);
    }
  }
  
  protected void d(g paramg, a.c.e parame, ObjectInputStream paramObjectInputStream)
    throws IOException
  {
    if (e.b == 0) {
      if (!this.e) {
        return;
      }
    }
    boolean bool = paramObjectInputStream.readBoolean();
    int i1 = paramObjectInputStream.readInt();
    if (this.c != null)
    {
      if (bool) {
        this.c.e(parame);
      }
      this.h[parame.f()] = i1;
    }
  }
  
  protected void a(g paramg, a.c.d paramd, ObjectInputStream paramObjectInputStream)
    throws IOException
  {
    int i2 = e.b;
    int i1 = e.a;
    byte b = paramObjectInputStream.readByte();
    if (i2 == 0) {
      if (b == 0)
      {
        b(paramg, paramd, paramObjectInputStream);
        if ((i2 == 0) && (i1 == 0)) {
          return;
        }
      }
    }
    if (i2 == 0)
    {
      if (b == 1)
      {
        b(paramg, paramd, paramObjectInputStream);
        c(paramg, paramd, paramObjectInputStream);
      }
    }
    else if (i1 == 0) {
      return;
    }
    throw new c(b);
  }
  
  protected void b(g paramg, a.c.d paramd, ObjectInputStream paramObjectInputStream)
    throws IOException
  {
    try
    {
      Class localClass = Class.forName(d((String)paramObjectInputStream.readObject()));
      localObject = (tb)localClass.newInstance();
      paramg.a(paramd, (tb)localObject);
      ((tb)localObject).a(paramObjectInputStream);
    }
    catch (RuntimeException localRuntimeException)
    {
      throw localRuntimeException;
    }
    catch (Exception localException)
    {
      Object localObject = new IOException(localException.toString());
      ((IOException)localObject).initCause(localException);
      throw ((Throwable)localObject);
    }
  }
  
  protected void c(g paramg, a.c.d paramd, ObjectInputStream paramObjectInputStream)
    throws IOException
  {
    int i3 = e.b;
    if (i3 == 0) {
      if (!this.d) {
        return;
      }
    }
    if (paramObjectInputStream.readBoolean())
    {
      a.c.e locale1 = paramd.e();
      a.c.e locale2 = paramd.f();
      Object localObject;
      int i1;
      int i2;
      if (i3 == 0) {
        if (paramObjectInputStream.readBoolean())
        {
          localObject = paramg;
          i1 = paramObjectInputStream.readInt();
          do
          {
            i2 = paramObjectInputStream.readInt();
            if (this.c != null)
            {
              localObject = this.c.o(locale1);
              locale1 = a((q)localObject, i2);
            }
            i1--;
          } while (i1 > 0);
        }
      }
      if (paramObjectInputStream.readBoolean())
      {
        localObject = paramg;
        i1 = paramObjectInputStream.readInt();
        do
        {
          i2 = paramObjectInputStream.readInt();
          if (this.c != null)
          {
            localObject = this.c.o(locale2);
            locale2 = a((q)localObject, i2);
          }
          i1--;
        } while (i1 > 0);
      }
      if ((i3 != 0) || (this.c != null)) {
        this.c.b(paramd, locale1, locale2);
      }
    }
  }
  
  private a.c.e a(q paramq, int paramInt)
  {
    int i3 = e.b;
    int i2 = e.a;
    int i1 = 0;
    w localw = paramq.v();
    do
    {
      while (i2 == 0)
      {
        if (!localw.e()) {
          break;
        }
        if (i3 == 0)
        {
          if (i1 == paramInt) {
            return localw.d();
          }
          localw.f();
          i1++;
        }
      }
    } while (i3 != 0);
    return null;
  }
  
  public void a(String paramString, a_ parama_)
  {
    this.k.put(paramString, parama_);
  }
  
  public a_ e(String paramString)
  {
    return (a_)this.k.get(paramString);
  }
  
  public void f(String paramString)
  {
    this.k.remove(paramString);
  }
  
  protected ObjectInputStream a(InputStream paramInputStream)
    throws IOException
  {
    return new d(paramInputStream);
  }
  
  protected ObjectOutputStream a(OutputStream paramOutputStream)
    throws IOException
  {
    return new ObjectOutputStream(paramOutputStream);
  }
  
  static Class g(String paramString)
  {
    try
    {
      return Class.forName(paramString);
    }
    catch (ClassNotFoundException localClassNotFoundException)
    {
      throw new NoClassDefFoundError(localClassNotFoundException.getMessage());
    }
  }
  
  static
  {
    StringBuffer localStringBuffer = new StringBuffer("y.view.");
    a(localStringBuffer.toString() + "ShapeNodeRealizer", (q == null ? (r.q = g("a.j.od")) : q).getName());
    a(localStringBuffer.toString() + "ImageNodeRealizer", (r == null ? (r.r = g("a.j.nd")) : r).getName());
    a(localStringBuffer.toString() + "Graph2DNodeRealizer", (s == null ? (r.s = g("a.j.pd")) : s).getName());
    a(localStringBuffer.toString() + "GenericNodeRealizer", (t == null ? (r.t = g("a.j.md")) : t).getName());
    a(localStringBuffer.toString() + "GenericGroupNodeRealizer", (u == null ? (r.u = g("a.j.a.n")) : u).getName());
    a(localStringBuffer.toString() + "tabular.TableGroupNodeRealizer", (v == null ? (r.v = g("a.j.b.f")) : v).getName());
    a(localStringBuffer.toString() + "hierarchy.GroupNodeRealizer", (w == null ? (r.w = g("a.j.a.o")) : w).getName());
    a(localStringBuffer.toString() + "ProxyShapeNodeRealizer", (x == null ? (r.x = g("a.j.qd")) : x).getName());
    a(localStringBuffer.toString() + "hierarchy.ProxyAutoBoundsNodeRealizer", (y == null ? (r.y = g("a.j.a.p")) : y).getName());
    a(localStringBuffer.toString() + "PolyLineEdgeRealizer", (z == null ? (r.z = g("a.j.xb")) : z).getName());
    a(localStringBuffer.toString() + "QuadCurveEdgeRealizer", (A == null ? (r.A = g("a.j.yb")) : A).getName());
    a(localStringBuffer.toString() + "GenericEdgeRealizer", (B == null ? (r.B = g("a.j.wb")) : B).getName());
    a(localStringBuffer.toString() + "ArcEdgeRealizer", (C == null ? (r.C = g("a.j.ub")) : C).getName());
    a(localStringBuffer.toString() + "BezierEdgeRealizer", (D == null ? (r.D = g("a.j.vb")) : D).getName());
    a(localStringBuffer.toString() + "SplineEdgeRealizer", (E == null ? (r.E = g("a.j.zb")) : E).getName());
    a(localStringBuffer.toString() + "Port", (F == null ? (r.F = g("a.j.zd")) : F).getName());
    a(localStringBuffer.toString() + "InterfacePort", (G == null ? (r.G = g("a.j.ae")) : G).getName());
    a(localStringBuffer.toString() + "tabular.TableStyle.SimpleStyle", (H == null ? (r.H = g("a.j.b.l$a_")) : H).getName());
    localStringBuffer.setLength(0);
    localStringBuffer.append("demo.uml.");
    a(localStringBuffer.toString() + "ClassNodeRealizer", "demo.uml.ClassNodeRealizer");
    a(localStringBuffer.toString() + "NoteNodeRealizer", "demo.uml.NoteNodeRealizer");
    i.put(localStringBuffer.toString() + "UMLClassNodeRealizer", "demo.uml.ClassNodeRealizer");
    i.put(localStringBuffer.toString() + "UMLNoteNodeRealizer", "demo.uml.NoteNodeRealizer");
  }
  
  public static abstract interface a_
  {
    public abstract void a(g paramg, Object paramObject, ObjectInputStream paramObjectInputStream)
      throws IOException;
    
    public abstract void a(g paramg, Object paramObject, ObjectOutputStream paramObjectOutputStream)
      throws IOException;
  }
}



/* Location:           E:\idea\

 * Qualified Name:     a.e.r

 * JD-Core Version:    0.7.0.1

 */